import validates from "./validates";

var stringCheck = (rule, value, callback) => {
    if (value && !validates.stringCheck(value)) {
      callback(new Error('只能包含中文、英文、数字、下划线等字符'))
    } else {
      callback()
    }
}

var isChineseChar = (rule, value, callback) => {
    if (value && !validates.isChineseChar(value)) {
      callback(new Error('匹配中文(包括汉字和数字)'))
    } else {
      callback()
    }
  }
  var isChinese = (rule, value, callback) => {
    if (value && !validates.isChinese(value)) {
      callback(new Error('只能输入中文'))
    } else {
      callback()
    }
  }
  

var hasIllegalChar = (rule, value, callback) => {
    let re = new RegExp(".*?script[^>]*?.*?(<\/.*?script.*?>)*", "ig").test(value)
    if (value && re) {
        callback(new Error('含有非法字符'))
    } else {
        callback()
    }
}

var isValidateRemark = (rule, value, callback) => {
  if (value && !validates.isValidateRemark(value)) {
    callback(new Error('含有特殊字符'))
  } else {
    callback()
  }
}

var isMobile = (rule, value, callback) => {
  if (value && !validates.isMobile(value)) {
    callback(new Error('请输入正确的手机号!'))
  } else {
    callback()
  }
}
var checkPhone = (rule, value, callback) => {
  if (value === '') {
  callback(new Error('请输入联系电话'));
  } else {
    let regPone = null;
    let mobile = /^1(3|4|5|6|7|8|9)\d{9}$/; //最新16手机正则
    let tel = /^(0\d{2,3}-){0,1}\d{7,8}$/; //座机
    if (value.charAt(0) == 0) {   // charAt查找第一个字符方法，用来判断输入的是座机还是手机号
      regPone = tel;
    } else {
      regPone = mobile;
    }
    if (!regPone.test(value)) {
      callback(new Error("请输入正确的电话格式！"))
    }
    callback();
  }
}

var checkUrl = (rule, value, callback) => {
  if (value && !validates.checkUrl(value)) {
    callback(new Error('注意路由url地址有效性'))
  } else {
    callback()
  }
}
// 校验密码
var checkPassword=(rule, value, callback)=>{
  if (value && !validates.validateFormat(value)) {
    callback(new Error('密码长度8-32位，数字、大小写字母、特殊字符，每类至少包含一个'))
  } else if(validates.validateChar(value)){
    callback(new Error('不能包含3个及以上键盘连续字符或连续3位及以上相同字母或数字'))
  }else{
    callback()
  }
}

export default {stringCheck,isChineseChar,isChinese,hasIllegalChar,isValidateRemark,isMobile, checkUrl,checkPassword,checkPhone}
